git 강의 요약
'Git, GitLab의 이해와 실무 활용' 란 강의를 듣고 정리
$git init
- git의 핵심폴더인 .git 폴더 생성됨
- git을 통해 해당 프로젝트에서 변경되는 파일들에 대한 추적/관리 가능
master라는 기본 브런치 생성됨
원격저장소 연결
$ git clone 연결할 git주소
- 1) clone 하기
$ git remote add origin 연결할 git주소
- 2) 로컬저장소 생성 -> 초기화(git init) -> 원격저장소 연결 (git remote add)
$ git remote -v
- 원격저장소 상세정보 확인
작업디렉토리의 파일 상태
1) Untracked
: 변경점을 발생했으나 git에 의해 관리되지 않은 파일, 단 한번도 staging area에 포함되지 않은 파일
$ git add TestService.java
- staging area에 추가
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm - cached …" to unstage)
new file: TestService.java
$ git commit
$ git commit -m ""
로컬저장소에 영구 저장
$ git commit - amend
마지막 반영한 커밋메시지 수정하고 싶을때
$ git revert commitID
원복
$ git pull origin master
원격저장소에 반영
$ git push origin master
원격저장소의 내용이 로컬저장소에 먼저 반영(update)
브랜치 branch
branch는 일종의 포인터, 커밋지점을 가리킨다.
$ git branch
현재 브랜치를 확인하는 명령어
$ git checkout feature-login
브랜치 변경(이동)
$ git log - all - graph
$ git checkout -b issue
브랜치 생성과 동시에 이동
$ git merge issue (master와 병합)
브랜치 병합
: 기준이 되는 브랜치로 이동해서 병합해야 한다!
- 3-Way Merge 방식으로 병합한다
$ git branch -d issue
브랜치 삭제
$ git branch -v
$ git mergetool
브랜치 충돌(conflict) 해결하기
1) 직접 merge하기
2) 툴사용하기
tag : 특정 시점의 소스코드 정보를 기록함
$git tag [태그명]
lightweight 태그 생성
$git tag -a [태그명] -m [태그메시지]
annotated 태그 생성
$git tag -a v1.0 -m "Implemented login feature"
$git log
commit 56d68d751873b5a68216e1278fef7de78c608958 (HEAD -> master, tag: v1.0, origin/master)
$git show v1.0
태그 상세정보 확인하기
$git log - online
태깅하고자 하는 커밋의 ID값 확인
$git tag -a v0.1 24b56ff -m "fix issue number-1"
커밋ID값을 인자로 태깅하기
GitFlow 모델
1) feature
: 기능을 개발하는 브랜치
- 기능개발 완료 or 스프린트 주기 종료시, develop 브랜치로 merge후 삭제됨
2) release
: 배포준비 브랜치
- 배포가능 상태가 되면 master 브랜치로 병합 & tag명시
- 이슈에 대한 수정사항은 반드시 develop 브랜치에 병합해야 함
3) hotfixs
: 긴급용(장애 및 버그발생 대응) 브랜치
- master 브랜치로부터 분기, 이슈에 대한 수정후 master, develop 브랜치에 최종 반영되어야 함
feature
$git flow feature start [개발할 기능명]
$ git branch
develop
- feature/login
master
git add LoginService.java
git commit -m "Commit#1 on feature/login branch"git log
$git flow feature finish [개발할 기능명]
기능개발 완료
Fast-forward
gitflow_test/LoginService.java | 1 +
1 file changed, 1 insertion(+)
create mode 100644 gitflow_test/LoginService.java
Deleted branch feature/login (was 694c031).
Summary of actions:
- The feature branch 'feature/login' was merged into 'develop'
- Feature branch 'feature/login' has been locally deleted
- You are now on branch 'develop'
release
$git flow release start [버전명]
$ git branch
develop
master
- release/1.0
$git flow release finish [버전명]
Switched to branch 'master'
Merge made by the 'recursive' strategy.
gitflow_test/LoginService.java | 1 +
gitflow_test/MainService.java | 2 ++
2 files changed, 3 insertions(+)
create mode 100644 gitflow_test/LoginService.java
create mode 100644 gitflow_test/MainService.java
Already on 'master'
Switched to branch 'develop'
Merge made by the 'recursive' strategy.
gitflow_test/MainService.java | 1 +
1 file changed, 1 insertion(+)
Deleted branch release/1.0 (was af83558).
Summary of actions:
- Release branch 'release/1.0' has been merged into 'master'
- The release was tagged '1.0'
- Release tag '1.0' has been back-merged into 'develop'
- Release branch 'release/1.0' has been locally deleted
- You are now on branch 'develop'
$ git log - oneline
a3dd93a (HEAD -> develop) Merge tag '1.0' into develop
7e90a02 (tag: 1.0, master) Merge branch 'release/1.0'
af83558 Commit#3 on release/1.0 branch
668d973 Commit#2 on develop branch
694c031 Commit#1 on feature/login branch
62f2db4 A Developer : Commit 1 for AService
hotfix
$git flow hotfix start issue#1
$git flow hotfix finish issue#1
Switched to branch 'master'
Merge made by the 'recursive' strategy.
gitflow_test/MainService.java | 1 +
1 file changed, 1 insertion(+)
Switched to branch 'develop'
Merge made by the 'recursive' strategy.
gitflow_test/MainService.java | 1 +
1 file changed, 1 insertion(+)
Deleted branch hotfix/issue#1 (was 7242e4c).
Summary of actions:
- Hotfix branch 'hotfix/issue#1' has been merged into 'master'
- The hotfix was tagged 'issue#1'
- Hotfix tag 'issue#1' has been back-merged into 'develop'
- Hotfix branch 'hotfix/issue#1' has been locally deleted
- You are now on branch 'develop'
Author And Source
이 문제에 관하여(git 강의 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@charming_12/git-강의요약저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)